# 在设定的时间内检查某一个元素,默认每隔一段时间就检查该元素的状态,如果超过限定时间则抛出异常
from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait

driver = webdriver.Chrome()
driver.get('https://www.baidu.com')
print(driver.title)

# lambda表达式
# fn = lambda x:True if x.title == '百度一下，你就知道' else False
# print(fn(driver))

# 在等待10s的期间,每隔一秒调用传入的方法,直到返回True
result1 = WebDriverWait(driver, 10, poll_frequency=1).until(lambda x: True if x.title == '百度一下，你就知道' else False,
                                                            message='超时')
print(result1)

# 在等待10s的期间,每隔一秒调用传入的方法,直到返回False
result2 = WebDriverWait(driver, 10, poll_frequency=1).until_not(lambda x: True if x.title == '百度一下，你就知道' else False,
                                                                message='超时')
print(result2)  # 会报错,返回不到False

result3 = WebDriverWait(driver, 10, poll_frequency=1).until_not(lambda x: True if x.title == '百度一下1，你就知道' else False,
                                                            message='超时')
print(result3)

driver.quit()
